{{title 'Nodes'}}
<EventSource @src={{items}} />
{{#let (hash
  statuses=(if status (split status ',') undefined)
) as |filters|}}
{{#let (or sortBy "Node:asc") as |sort|}}
  <AppView @class="node list">
    <BlockSlot @name="header">
      <h1>
        Nodes <em>{{format-number items.length}} total</em>
      </h1>
      <label for="toolbar-toggle"></label>
    </BlockSlot>
    <BlockSlot @name="toolbar">
    {{#if (gt items.length 0) }}
        <ConsulNodeSearchBar
          @search={{search}}
          @onsearch={{action (mut search) value="target.value"}}

          @sort={{sort}}
          @onsort={{action (mut sortBy) value="target.selected"}}

          @filter={{filters}}
          @onfilter={{hash
            status=(action (mut status) value="target.selectedItems")
          }}
        />
    {{/if}}
    </BlockSlot>
    <BlockSlot @name="content">
{{#let (filter (filter-predicate 'node' filters) items) as |filtered|}}
  {{#let (sort-by (comparator 'node' sort) filtered) as |sorted|}}
      <ChangeableSet @dispatcher={{searchable 'node' sorted}} @terms={{search}}>
        <BlockSlot @name="set" as |searched|>
          <ConsulNodeList @items={{searched}} @leader={{leader}} />
        </BlockSlot>
        <BlockSlot @name="empty">
          <EmptyState>
            <BlockSlot @name="body">
              <p>
                There don't seem to be any registered nodes, or you may not have access to view nodes yet.
              </p>
            </BlockSlot>
          </EmptyState>
        </BlockSlot>
      </ChangeableSet>
  {{/let}}
{{/let}}
    </BlockSlot>
  </AppView>
  {{/let}}
{{/let}}